<template>
	<view>
		<!-- 我的 -->
		<my-login v-if="!token"></my-login>
		<my-userinfo v-else></my-userinfo> 
	</view>
</template>

<script>
	import {mapState,mapMutations,mapGetters} from "vuex"
	export default {
		data() {
			return {
				
			};
		},
		computed:{
			...mapState('m_user',['address',"token"]),
			...mapState("m_setting",['storageSize']),
			...mapGetters("m_user",['user_total'])
		},
		onShow(){
			this.getStorageSize()
		},
		methods:{
			...mapMutations("m_user",['updateAddress']),
			...mapMutations("m_setting",['updateStorageSize']),
			/**
			 * 获取用户的收货地址
			 */
			async chooseAddress(){
			     //1.调用小程序提供的chooseAddress()方法，即可使用选择收回地址的功能
				 //返回值是一个数组，第一项为错误对象，第二项为成功之后的收货地址对象
				const succ = await uni.chooseAddress();
				//2.用户成功的选择了收货地址
				if(succ.errMsg === 'chooseAddress:ok'){
					//3.调用Store中提供的udpateAddress 方法，将address保存到Store中
				  this.updateAddress(succ);
				}
			},
			async getAuth(){
			   	//1.提示用户对地址进行授权
				const confirmResult = await uni.showModal({
					content:"检测到您没有打开地址权限，是否去设置？",
					confirmText:"确认",
					cancelText:"取消"
				})
				//3.如果用户点击了取消按钮，则提示用户“您取消了地址授权！
				if(confirmResult.cancel) return uni.$showMsg("您取消了地址授权！")
				
				//4.如果用户点击了确认按钮，则调用uni.openSetting() 方法进入授权页面，让用户重新进行授权
				if(confirmResult.confirm) return uni.openSetting({
					//5.授权结束，需要对授权结果进一步判断
					success:(settingResult)=>{
						if(settingResult.authSetting['scope,address']) return uni.$showMsg("授权成功！请选择地址")
						else return uni.$showMsg("您取消了地址授权！")
					}
				})
			},
			getStorageSize(){
				this.updateStorageSize(uni.getStorageInfoSync().currentSize + "KB");
			},
		}
	}
</script>

<style lang="scss">

</style>
